In recent years, in accordance with digitalization of information technology, high-speed serial communication of digital signals (hereinafter referred to as digital communication) has been widely used in, for example, data transmission between LSIs (large-scale integration), wireless communication, and optical fiber communication.
In the digital communication, it is required to send timing information in addition to transmission data so as to correctly sample data. Furthermore, most of the high-speed serial communication does not transmit the timing information via an extra line other than lines for transmitting data, to reduce the number of communication lines. Instead, coding is used with providing redundancy to the data, so as to ensure the data to be transited within a constant period.
In 8B10B coding as an example of the coding, a transmitting end converts 8-bit data and device state information into 10-bit characters and transmits the 10-bit characters, and then a receiving end converts back the received 10-bit characters into the 8-bit data and the device state information.
The transmitting end converts the data and the device information into the characters in accordance with timings shown in FIG. 12, for example.
More specifically, in FIG. 12, in the case where a cycle of a clock 1200 for operating a system is one-fourth of a cycle of transmission characters, when a data transmission instruction 1202 demands transmission and data 1210, 1220, and 1230 in a data group 1201 are transmitted, the data 1210, 1220 and 1230 are converted into the characters in accordance with timings of character groups 1203 through 1206.
Here, characters 1211 to 1214 are converted from the data 1210, characters 1221 to 1224 are converted from the data 1220, and characters 1231 to 1234 are converted from the data 1230.
However, when the technique is carried out, an interval between the data groups may change due to timing when the data is converted into the characters. This may occur when the interval between the data groups becomes a value that cannot be divided by a time unit of the characters. For example, when the character unit is 80 ns, the interval between the character groups, which are converted from the data group, becomes 640 ns or 720 ns, in a case where a closest value of the character unit, namely the interval between the data groups (before the character conversion) is 700 ns. Then, when the character unit is 640 ns, a receiving device may not be able to capture the data group.
Specifically, as shown in FIG. 13, in the case where a cycle of a clock 1300 for operating the system is one-fourth of a cycle of the transmission characters, when the data transmission instruction 1302 demands transmission and data 1310, 1320 and 1330 in the data group 1301 are transmitted, in which an interval between the data 1310 and the data 1320 is seven cycles of the clock, an interval between characters 1311 to 1313 converted from the data 1310 and characters 1321 to 1323 converted from the data 1320 becomes eight cycles of the clock in transmission character groups 1303, 1304 and 1305, whereas an interval between the data 1314 converted from the data 1310 and the data 1324 converted from the data 1320 becomes four cycles of the clock in a transmission character group 1306, after the character conversion is carried out.
As described above, in the serial communication in which the device state information and the data group are transmitted and received per character unit, the interval between the data groups may be changed.
In such a case, it does not matter when the interval between the data groups after the character conversion becomes identical with or longer than the interval between the data groups before the character conversion. However, when the interval between the data groups after the character conversion becomes smaller than a constant value, due to timing caused by the character conversion, (a) a receiving device or (b) the other device to which the receiving device has transmitted the received data group via a channel in which a communication mode is not specified, cannot capture the data group.
Therefore, the conventional transmission method in which the data are converted into the characters may cause a problem that the receiving device cannot stably receive the data group after the character conversion, in other words, the transmitting device and the receiving device cannot stably communicate with each other (cannot transmit and receive the data group).